/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia.Decoradores;


import entidadesNegocio.Material;
import entidadesNegocio.TipoMaterial;
import excepciones.ExpertoMaterialesException;
import expertos.ExpertoMateriales;
import persistencia.Conexion;

/**
 *
 * @author diego
 */
public class DecoradorMateriales extends ExpertoMateriales {

    @Override
    public void guardar(Material material) throws ExpertoMaterialesException {
        try {
            Conexion.getInstancia().iniciarTX();
            super.guardar(material);
            Conexion.getInstancia().confirmarTx();
        } catch (ExpertoMaterialesException ex) {
            Conexion.getInstancia().deshacerTx();
            throw ex;
        }
    }

    @Override
    public void eliminarMaterial(Material material) throws ExpertoMaterialesException {
        try {
            Conexion.getInstancia().iniciarTX();
            super.eliminarMaterial(material);
            Conexion.getInstancia().confirmarTx();
        } catch (ExpertoMaterialesException ex) {
            Conexion.getInstancia().deshacerTx();
            throw ex;
        }
    }

    @Override
    public void guardarNuevoTipo(TipoMaterial nuevoTipo) throws ExpertoMaterialesException {
        try {
            Conexion.getInstancia().iniciarTX();
            super.guardarNuevoTipo(nuevoTipo);
            Conexion.getInstancia().confirmarTx();
        } catch (ExpertoMaterialesException ex) {
            Conexion.getInstancia().deshacerTx();
            throw ex;
        }
    }

    @Override
    public void eliminarTipoMat(TipoMaterial tipoMat) throws ExpertoMaterialesException {
        try {
            Conexion.getInstancia().iniciarTX();
            super.eliminarTipoMat(tipoMat);
            Conexion.getInstancia().confirmarTx();
        } catch (ExpertoMaterialesException ex) {
            Conexion.getInstancia().deshacerTx();
            throw ex;
        }
    }
}
